2023/12/231750字符

命名空间

1. 对象式命名

var org = {
    department1: {
        zhangSan: {
            name: 'abc',
            age: 100
        }
    },
    department2: {
        liSi: {
            name: 'abc',
            age: 100
        }
    },
    department3: {
        wangWu: {
            name: 'abc',
            age: 100
        }
    }
}
zhangSan.name

2. 通过闭包进行私有化

var name = 'bcd';
var init = (function(){
    var name = 'abc';
    function callName(){
        console.log(name);
    }
    return function(){
        callName();
    }
}())
init();
var name = 'bcd';
var initBoZai = (function(){
    var name = 'hehe';
    function callName(){
        console.log(name);
    }
    return function(){
        callName();
    }
}())
initBoZai();

连续调用

var deng = {
    smoke : function(){
        console.log("smokeing...!!!");
        return this;
    },
    drink : function(){
        console.log("drinking...!!!");
        return this;
    },
    perm : function(){
        console.log("perming...!!!");
        return this;
    }
}
deng.smoke().drink().perm().drink();  /*--> smokeing...!!!
                                            drinking...!!!
                                            perming...!!!
                                            drinking...!!! */

3. obj.name -- 隐式转换 --> obj['obj']

var deng = {
    wife1 : {name : "zhangsan"},
    wife2 : {name : "lisi"},
    wife3 : {name : "wangwu"},
    wife4 : {name : "zhaoliu"},
    sayWife : function(num){
        return this['wife' + num];
    }
}
deng.sayWife(1);  //--> {name: "lisi"}